package com.bosssoft.cloud.wechat.infrastructure.annotation;

import com.bosssoft.cloud.wechat.infrastructure.constant.VerifyCodeConsts;
import org.springframework.core.annotation.AliasFor;

import java.lang.annotation.*;

/**
 * 验证码
 * 添加到controller方法上,代表对入参进行验证码校验
 *
 * @author wcy create on 2021/7/28 9:46 上午
 */
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface VerifyCode {

    @AliasFor("name")
    String value() default VerifyCodeConsts.CODE_NAME;

    /**
     * 验证码入参名
     */
    @AliasFor("value")
    String name() default VerifyCodeConsts.CODE_NAME;

    /**
     * 验证码类型
     */
    String type() default VerifyCodeConsts.IMAGE;

    /**
     * 是否必填
     */
    boolean required() default true;

    /**
     * 其他属性
     * 如:验证类型手机,则others[0]=手机号入参
     */
    String[] others() default {};
}
